package laborum2011.servlet;

import java.io.IOException;

import java.sql.Date;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;

import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import laborum2011.dao.*;
import laborum2011.excepcion.DAOExcepcion;

import laborum2011.modelo.*;

/**
 * Servlet implementation class PersonaServlet
 */
@WebServlet("/PersonaServlet")
public class PersonaServlet extends HttpServlet {
	private static final long serialVersionUID = 1L;
       
    /**
     * @see HttpServlet#HttpServlet()
     */
    public PersonaServlet() {
        super();
        // TODO Auto-generated constructor stub
    }

	/**
	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		RequestDispatcher rd;
		HttpSession session = request.getSession();
		//int num = Integer.parseInt (request.getParameter("id_per"));
		String mod=request.getParameter("mod");
		String tipo=request.getParameter("tipo");
	    Persona p=new Persona();
     	
		p=(Persona) session.getAttribute("perp");
	
		if(p.getNombres()==null){
			System.out.println("persona "+ p.getNombres());
			 if(tipo.equals("P")){
				 request.setAttribute("tipo", "P");
				 rd = request.getRequestDispatcher("IngresoPersonaP.jsp");
				 rd.forward(request, response); 
	         }else if(tipo.equals("A")) {
	        	 request.setAttribute("tipo", "A");
	        	 rd = request.getRequestDispatcher("IngresoPersonaA.jsp");
				 rd.forward(request, response);
	         }
		 }
		
		 if(mod.equals("act")){
	         if(tipo.equals("P")){
	        		System.out.println("Actualiza "+p.getNombres()+" ");
	     
				 rd = request.getRequestDispatcher("ActualizarPersonaP.jsp");
				 rd.forward(request, response);	 
	         }else if(tipo.equals("A")) {
	        	 request.setAttribute("p", "A");
				 rd = request.getRequestDispatcher("ActualizarPersonaA.jsp");
				 rd.forward(request, response);
	         }		 
			 
		 }else if (mod.equals("eliminar")){
			 
		 }
		
	}

	/**
	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
	 */
	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
		RequestDispatcher rd;
		Loguin lo=new Loguin();
		HttpSession session = request.getSession();
		PersonaDAO pdao= new PersonaDAO();
		Persona p=new Persona();
		Postulante pos=new Postulante();
		PostulanteDAO posdao=new PostulanteDAO();
		//int num = Integer.parseInt (request.getParameter("id_per"));
		String var="";
		String mod=request.getParameter("mod");
		lo=(Loguin) session.getAttribute("logueo");
		
	try {
		var=validar(request.getParameter("nombre"),request.getParameter("apepat"),request.getParameter("apemat"),
				request.getParameter("nacimiento"),request.getParameter("genero"),request.getParameter("tele"),request.getParameter("celular"),
				request.getParameter("correo"),request.getParameter("dire"),request.getParameter("numero"),request.getParameter("nacion"),request.getParameter("civil"));
		if(var.equals("validado")){
		  if (mod.equals("ingresop")){
			  DateFormat formater = new SimpleDateFormat("yyyy-MM-dd");   
				java.util.Date parsed = formater.parse(request.getParameter("nacimiento"));   
				Date fecnac= new Date(parsed.getTime());  	
				  p.setNombres(request.getParameter("nombre"));
				  p.setApe_paterno(request.getParameter("apepat"));
				  p.setApe_materno(request.getParameter("apemat"));
				  p.setFec_nacimiento(fecnac);
				  p.setGenero(request.getParameter("genero"));
				  p.setTelefono(request.getParameter("tele"));
				  p.setCelular(request.getParameter("celular"));
				  p.setCorreo(request.getParameter("correo"));
				  p.setDireccion(request.getParameter("dire"));
				  p.setTipo_documento(request.getParameter("tipodoc"));
				  p.setNro_documento(request.getParameter("numero"));
				  p.setId_usuario(lo.getId_usuario());
				  p.setId_pais(Integer.parseInt (request.getParameter("ubi")));
				  p.setId_departamento(Integer.parseInt (request.getParameter("depa")));
				  p.setId_distrito(Integer.parseInt (request.getParameter("dis")));
				  p.setNro_documento(request.getParameter("numero"));
				  p.setEstado(1);
				  System.out.println("ingresado "+request.getParameter("tipo1"));
				  int id=pdao.insertar(p);
				  p=pdao.buscarXIdP(id);
				  session.setAttribute("perp", p);
			      pos.setId_persona(id);
			      pos.setNacionalidad(request.getParameter("nacion"));
				  pos.setEstado_civil(request.getParameter("civil"));
				  pos.setFoto("foto");
				  int idpos=posdao.insertar(pos);
				  pos=posdao.obtenerPosxId(id);
				  session.setAttribute("postulante", pos);
				  session.setAttribute("idpostulante", idpos);
			      rd=request.getRequestDispatcher("masterp.jsp");
				  rd.forward(request, response);  	 
		  }else if(mod.equals("ingresoa")){
			  DateFormat formater = new SimpleDateFormat("yyyy-MM-dd");   
				java.util.Date parsed = formater.parse(request.getParameter("nacimiento"));   
				Date fecnac= new Date(parsed.getTime());  	
				  p.setNombres(request.getParameter("nombre"));
				  p.setApe_paterno(request.getParameter("apepat"));
				  p.setApe_materno(request.getParameter("apemat"));
				  p.setFec_nacimiento(fecnac);
				  p.setGenero(request.getParameter("genero"));
				  p.setTelefono(request.getParameter("tele"));
				  p.setCelular(request.getParameter("celular"));
				  p.setCorreo(request.getParameter("correo"));
				  p.setDireccion(request.getParameter("dire"));
				  p.setTipo_documento(request.getParameter("tipodoc"));
				  p.setNro_documento(request.getParameter("numero"));
				  p.setId_usuario(lo.getId_usuario());
				  p.setId_pais(Integer.parseInt (request.getParameter("ubi")));
				  p.setId_departamento(Integer.parseInt (request.getParameter("depa")));
				  p.setId_distrito(Integer.parseInt (request.getParameter("dis")));
				  p.setNro_documento(request.getParameter("numero"));
				  p.setEstado(1);
				  int id=pdao.insertar(p);
				  System.out.println("ingresado "+id);
				  session.setAttribute("idpersona",id);
				  p=pdao.buscarXIdP(id);
                  session.setAttribute("perp",p);
			      rd=request.getRequestDispatcher("IngresoEmpresa.jsp");
				  rd.forward(request, response);
			
		  }
		}else {
			session.setAttribute("anunciol", var);
			rd=request.getRequestDispatcher("IngresoPersonaP.jsp");
			rd.forward(request, response);
		} 
		
	}catch (DAOExcepcion e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
	} catch (ParseException e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	}
	}

	private String validar(String nombre, String paterno, String materno, String nac, String genero, String tele, String celular, String correo, String dire,  String numero,String nacion, String civil) {
		// TODO Auto-generated method stub
		String val;

		if(nombre.equals("")){
			val="Ingrese nombre";
			return val;
		}else if(paterno.equals("")){
			val="Ingrese apellido paterno";
			return val;
		}else if(materno.equals("")){
			val="Ingrese apellido paterno";
			return val;
		}else if(nac.equals("")){
			val="Ingrese Fecha de Nacimiento";
			return val;
		}else if(genero.equals("")){
			val="Ingrese Genero";
			return val;
		}else if(tele.equals("")){
			val="Ingrese telefono";
			return val;
		}else if(celular.equals("")){
			val="Ingrese celular";
			return val;
		}else if(correo.equals("")){
			val="Ingrese correo";
			return val;
		}else if(dire.equals("")){
			val="Ingrese Direccion";
			return val;
		}else if(numero.equals("")){
			val="Ingrese Numero de documento";
			return val;
		}else if(nacion.equals("")){
			val="Ingrese Nacionalidad";
			return val;
		}else if(civil.equals("")){
			val="Ingrese Estado Civil";
			return val;
		}
		
		
		
		
		return "validado";
	}

}
